﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace CamadaDados
{
    public class conteudo
    {

        DB_CASAIS conexao = new DB_CASAIS();

        public void InicializarConexao(object banco)
        {
            ((DB_CASAIS)conexao).Connection.Open();
        }

        public void FecharConexao(object banco)
        {
            ((DB_CASAIS)conexao).Connection.Close();
        }
        
        public void GravarConteudo(tb_conteudo objConteudo)
        {
            try
            {
                InicializarConexao(conexao);
                conexao.AddTotb_conteudo(objConteudo);
                conexao.SaveChanges();

            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(conexao);
            }
        }

        public List<tb_conteudo> CarregarConteudo()
        {
            var ListObjConteudo = new List<tb_conteudo>();

            try
            {
                InicializarConexao(conexao);
                ListObjConteudo = conexao.tb_conteudo.ToList();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(conexao);
            }

            return ListObjConteudo;
        }

        public tb_conteudo SelecionarConteudo(int intCodConteudo)
        {
            var objConteudo = new tb_conteudo();
            
            try
            {
                InicializarConexao(conexao);
                objConteudo = conexao.tb_conteudo.Where(q => q.CO_CONTEUDO == intCodConteudo).ToList().FirstOrDefault();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(conexao);
            }

            return objConteudo;


        }

        public void ExcluirConteudo(int intCodConteudo)
        {
            try
            {
                InicializarConexao(conexao);
                var objConteudo = conexao.tb_conteudo.Where(q => q.CO_CONTEUDO == intCodConteudo).ToList().FirstOrDefault();
                conexao.DeleteObject(objConteudo);
                conexao.SaveChanges();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(conexao);
            }
        }

        public void EditarConteudo(tb_conteudo objConteudo)
        {
            try
            {
                InicializarConexao(conexao);
                var objConteudoBanco = conexao.tb_conteudo.Where(q => q.CO_CONTEUDO == objConteudo.CO_CONTEUDO).ToList().FirstOrDefault();
                objConteudoBanco.DS_TITULO = objConteudo.DS_TITULO;
                objConteudoBanco.DS_CONTEUDO = objConteudo.DS_CONTEUDO;
                objConteudoBanco.CO_SITUACAO = objConteudo.CO_SITUACAO;
                objConteudoBanco.DT_ALTERACAO = DateTime.Now;
                conexao.SaveChanges();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(conexao);
            }

        }

        public void MudarStatus(int intCodConteudo) 
        {
            try
            {
                InicializarConexao(conexao);
                var objConteudo = conexao.tb_conteudo.Where(q => q.CO_CONTEUDO == intCodConteudo).ToList().FirstOrDefault();

                if (objConteudo.CO_SITUACAO == 0)
                {
                    objConteudo.CO_SITUACAO = 1;
                }
                else
                {
                    objConteudo.CO_SITUACAO = 0;
                }

                conexao.SaveChanges();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(conexao);
            }

        }
    }
}